package com.putable.cgw.game.member;

import java.awt.Point;

import com.putable.cgw.game.yard.Yard;
/**
 * 
 * @author Todd
 *
 */
public interface Member {
	/**
	 * Gets the ChainAble in front of this
	 * @return The ChainAble in front of this
	 */
	public Member getUpChain();
	/**
	 * Sets the ChainAble in front of this
	 * @param m The ChainAble to be set
	 */
	public void setUpChain(Member m);
	
	/**
	 * Gets the ChainAble behind this
	 * @return The ChainAble behind this
	 */
	public Member getDownChain();
	/**
	 * Sets the ChainAble behind this
	 * @param m The ChainAble to be set
	 */
	public void setDownChain(Member m);
	
	/**
	 * Gets the position of the Member
	 * @return The Point representation of the Member's position
	 */
	public Point getPosition();
	/**
	 * Sets the current position
	 * @param p The point to set the position to
	 */
	public void setPosition(Point p);
	
	/**
	 * @return The <code>Yard</code> where this <code>Member</code> resides. Returns null if not in a yard.
	 */
	public Yard getYard();
	
	/**
	 * @param yard the <code>Yard</code> to set, where the <code>Member</code> is.
	 */
	public void setYard(Yard yard);
	
}
